<?php

class Admin_ImagemController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
        $this->_helper->_layout->setLayout('admin');
    }

    public function indexAction() {
        $numprod = $this->_request->getParam('qtd');
        $id = $this->_request->getParam('id');
        $this->view->qtd = $numprod;
        
        if(isset($numprod)){
           Zend_Paginator::setDefaultItemCountPerPage($numprod);
        }else{
           Zend_Paginator::setDefaultItemCountPerPage(10);
        }
        Zend_View_Helper_PaginationControl::setDefaultViewPartial('produtos/paginator.phtml');


        $galeriasModel = new Application_Model_Galerias();

        $this->view->galerias = $galeriasModel->fetchAll(
                        $galeriasModel->select()
						->where('excluido = 0')
						->order('id_galeria DESC')

        );
        
        $galeriaModel = new Application_Model_Galeria();

        $this->view->galeria = $galeriaModel->fetchAll(
                        $galeriaModel->select()->where('excluido = 0')
											->where('galeria = ?', $id)
                                            ->order('id_foto DESC')

        );

        $busca = $this->_request->getParam('busca');
        $galeria = $this->_request->getParam('galeria');

$paginator = Zend_Paginator::factory($this->view->galeria);

            $paginator->setCurrentPageNumber($this->_request->getParam('pagina'));

            $this->view->paginator = $paginator;    }

    public function adicionarAction() {
        require_once APPLICATION_PATH . '/modules/admin/forms/Galeria.php';
        $this->view->form = new admin_Form_Galeria();
			$this->view->cade = $this->_request->getParam('id');

        if ($this->_request->isPost()) {
			$galeria = $this->_request->getParam('id');
		
            $upload = $this->view->form->pFoto->getTransferAdapter();
            $upload->addValidator('Size', false, array('0kB', '2mB'));
            $upload->addValidator('Extension', false, array('gif', 'jpg', 'png'));

            $uploaded = false;
            if ($upload->isValid()) {
                if ($upload->receive()) {
                    $uploaded = true;
                }
            }

            $this->view->form->setDefaults($this->_request->getPost());

            $data = $this->view->form->getValues();

            if ($this->view->form->isValid($data)) {

                $galeriaModel = new Application_Model_Galeria();

                unset($data['pFoto']);
				$data['galeria'] = $galeria;
                $id = $galeriaModel->insert($data);

                if ($uploaded) {
                    $filter = new Zend_Filter_File_Rename(array('target' => APPLICATION_PATH . '/../public/galeria_fotos/' . $id . '.jpg', 'overwrite' => true));
                    $filter->filter($upload->getFileName());

                    Zend_Loader::loadClass('Imagem');

                    $Pasta  = "galeria_fotos/";
                    $nomeArquivo = $id . '.jpg';
                    $Largura = '800';
                    $Altura = '600';

                    $Pasta_thumbs  = "galeria_fotos/thumbs/";
                    $Largura_thumbs = '200';
                    $Altura_thumbs = '200';

                    $MetodoRedimencionar = 2;

                    $CorFundo = null;

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura, $Altura, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta . $nomeArquivo);

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura_thumbs, $Altura_thumbs, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta_thumbs . $nomeArquivo);
                }

				$onde = '/admin/imagem/index/id/' . $galeria;
				return $this->_helper->redirector->gotoUrl($onde);
            }
        }
    }

    public function editarAction() {
        $id = $this->_request->getParam('id');
		
        require_once APPLICATION_PATH . '/modules/admin/forms/Galeria.php';
        $this->view->form = new admin_Form_Galeria();

        $galeriaModel = new Application_Model_Galeria();

        if ($this->_request->isPost()) {
            $upload = $this->view->form->pFoto->getTransferAdapter();
            $upload->addValidator('Size', false, array('0kB', '2mB'));
            $upload->addValidator('Extension', false, array('gif', 'jpg', 'png'));

            $uploaded = false;
            if ($upload->isValid()) {
                if ($upload->receive()) {
                    $uploaded = true;
                }
            }

            $this->view->form->setDefaults($this->_request->getPost());

            $data = $this->view->form->getValues();

            if ($this->view->form->isValid($data)) {

                unset($data['pFoto']);

                $galeriaModel->update($data, 'id_foto = ' . $id);

                if ($uploaded) {
                    $filter = new Zend_Filter_File_Rename(array('target' => APPLICATION_PATH . '/../public/galeria_fotos/' . $id . '.jpg', 'overwrite' => true));
                    $filter->filter($upload->getFileName());
                    
                    Zend_Loader::loadClass('Imagem');

                    $Pasta  = "galeria_fotos/";
                    $nomeArquivo = $id . '.jpg';
                    $Largura = '800';
                    $Altura = '600';

                    $Pasta_thumbs  = "galeria_fotos/thumbs/";
                    $Largura_thumbs = '250';
                    $Altura_thumbs = '250';

                    $MetodoRedimencionar = 2;

                    $CorFundo = null;

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura, $Altura, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta . $nomeArquivo);

                    $Imagem = new Imagem($Pasta . $nomeArquivo);
                    $Imagem->Ponteiro = '';
                    $Imagem->Redimencionar($Largura_thumbs, $Altura_thumbs, $MetodoRedimencionar, $CorFundo);
                    $Imagem->Salvar( $Pasta_thumbs . $nomeArquivo);                 
                }

				$onde = '/admin/tendencias';
				return $this->_helper->redirector->gotoUrl($onde);
            }
        }

        $galeria = $galeriaModel->find($id)->current();

        $this->view->form->setDefaults($galeria->toArray());
    }

    public function removerAction() {
        $id = $this->_request->getParam('id');
        $dd = $this->_request->getParam('dd');
        $confirma = $this->_request->getParam('confirma');

        $galeriaModel = new Application_Model_Galeria();

        if(isset($confirma)){
            if($confirma == 1){
                $galeriaModel->update(array(
                    'excluido' => '1'
                        ), 'id_foto = ' . $id);

                unlink(APPLICATION_PATH . '/../galeria_fotos/' . $id . '.jpg');
                unlink(APPLICATION_PATH . '/../galeria_fotos/thumbs/' . $id . '.jpg');
            }
			$onde = '/admin/imagem/index/id/' . $dd;
			return $this->_helper->redirector->gotoUrl($onde);

        }else{
            $this->view->id = $this->_request->getParam('id');

            $galeriaModel = new Application_Model_Galeria();

            $nome_galeria = $galeriaModel->fetchAll(
                                        $galeriaModel->select()
                                            ->from($galeriaModel->info(Zend_Db_Table_Abstract::NAME))
                                            ->columns(array('descricao'))
                                            ->where('id_foto = ?', $id)
                                        );
            $this->view->galeria = $nome_galeria;       
        }

    }
}

